package cn.telling.sellercentre.dao;

import java.util.List;

import cn.telling.common.pager.PageVo;
import cn.telling.product.vo.ShopProductVo;
import cn.telling.sellerCenter.vo.ShopProductApproveVo;
import cn.telling.sellerCenter.vo.ShopProductAreaApproveVo;
import cn.telling.sellerCenter.vo.ShopProductAreaVo;

/**
 * @Description: 产品管理 产品中心数据处理层接口
 * @author liugeng
 */
public interface ISellerCentreDao {
    /** 根据用户Id获得商铺简介的信息 */
//    public SupplyVo GetShopInfo(String userId);

    /** 根据用户Id修改商铺简介信息 */
    public int SetShopIntroduce(String userId, String shopIntroduce);

    /** 根据用户Id获得供应商类型 空 外部供应商 01 天音供应商 02 03厂家供应商 */
    public String GetSupplyType(String userid);

    /** 获得卖家中心已上架、已下架、审核中产品列表 */
    public List<ShopProductAreaVo> getSaleListByStatus(String userId, String saleType, String status, String conditions);

    /** 根据供货商产品信息提交产品审核申请 */
    public int insertShopProductApprove(ShopProductAreaApproveVo shopProductAreaApproveVo);

    /** 根据货商产品信息提交产品审核申请 更新供应商产品区域销售状态 */
    public int updateSupplyAreaSaleStatus(ShopProductAreaApproveVo shopProductAreaApproveVo);

    /** 根据共享编码查询出共享产品列表 供共享使用 */
    public List<ShopProductAreaVo> getSupplyAreaByShareCode(String shareCode);

    /** 根据supplyAreaId 查询出供货商产品区域 */
    public ShopProductAreaVo getSupplyAreaById(String supplyAreaId);

    /** 同一编码更新同一库存 */
    public int updateShareStockNumber(String stockNumber, String shareCode);

    // 根据用户Id、销售类型(定向、非定向)、上下架状态、型号名称 获得供货商产品总数
    public int GetShopProductCount(String userId, String saleType, String status, String modelName);

    // 根据用户Id、销售类型(定向、非定向)、上下架状态、型号名称 分页获得供货商产品列表（分页）
    public List<ShopProductVo> GetShopProductList(String userId, String saleType, String status, PageVo pageVo,
            String modelName);

    // 根据用户Id、销售类型(定向、非定向)、上下架状态 获得所有供货商产品列表（不分页）
    public List<ShopProductVo> GetShopProductListNoPage(String userId, String saleType, String status);

    // 根据用户Id、销售类型(定向、非定向)、型号名称 获得审核中的供货商产品总数
    public int GetApproveShopProductCount(String userId, String saleType, String modelName);

    // 根据用户Id、销售类型(定向、非定向)、型号名称 分页获得审核中的供货商产品列表（分页）
    public List<ShopProductVo> GetApproveShopProductList(String userId, String saleType, PageVo pageVo, String modelName);

    // 根据用户Id、销售类型(定向、非定向) 获得所有审核中的供货商产品列表（不分页）
    public List<ShopProductVo> GetApproveShopProductListNoPage(String userId, String saleType);

    // 根据用户Id、销售类型(定向、非定向) 获得所有供货商产品Id列表（不分页,包括审核中的、已上架的、已下架的） 供剔除产品列表使用
    public List<ShopProductVo> GetShopProductIdListNoPage(String userId, String saleType, String status);

    // 根据供货商产品Id、用户Id 获得供货商产品信息
    public ShopProductVo GetShopProduct(String shopProductId, String userId);

    // 根据供货商产品Id 获得供货商产品信息
    public ShopProductVo GetShopProduct(String shopProductId);

    // 根据供货商产品Id、销售状态(1 审核中、2 审核未通过、3 审核通过)、上下架状态 获得该供货商产品的指定状态的发布信息
    public List<ShopProductAreaVo> GetShopProductAreaList(String shopProductId, String saleStatus, String status);

    // 根据供货商产品Id 获得该供货商产品的指定状态的发布信息
    public List<ShopProductAreaVo> GetShopProductAreaList(String shopProductId);

    // 根据供货商产品信息提交产品审核申请
    public int ApproveShopProductChange(ShopProductApproveVo shopProductApproveVo);

    // 根据供货商产品信息提交产品审核申请
    public int ApproveShopProductChange2(ShopProductApproveVo shopProductApproveVo);

    // 根据供货商产品信息更新供应商产品状态
    public int UpdateShopProductStatus(ShopProductApproveVo shopProductApproveVo);

    // 根据供货商产品信息更新供应商产品状态
    public int UpdateShopBidProductStatus(ShopProductApproveVo shopProductApproveVo);

    // 根据供应商产品信息更新供应商产品继续竞价状态
    public int UpdateContinuous(ShopProductAreaVo shopProductAreaVo);

    // 根据用户Id、销售类型(定向、非定向)、型号名称、供货商产品Id 获得审核中的产品列表数量
    public int GetApproveShopProductCountByProId(String userId, String saleType, String modelName, String shopProductId);

    // 根据用户Id、销售类型(定向、非定向)、上下架状态、型号名称、供货商产品Id 获得所有供货商产品列表数量
    public int GetShopProductCountByProId(String userId, String saleType, String status, String modelName,
            String shopProductId);
}
